package com.hmk.blogboot.Interceptor;


import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/*
* 写拦截器，再写拦截配置，否则不知道拦截像 /admin资源路径
* 写个webConfig配置类，告诉springboot拦截/admin这种的资源路径
* */

/*使用springboot给定的拦截器，拦截只有只有登录才能访问/admin/**路径的接口 */
public class LoginInterceptor  extends HandlerInterceptorAdapter {
    //执行在请求到达后端之前做拦截，重写HandlerInterceptorAdapter中preHandle方法
    @Override
    public boolean preHandle(HttpServletRequest request,
                             HttpServletResponse response,
                             Object handler) throws Exception {
            //request对象获取session里面的key为user值 对应value值，如果为空
            //说明该用户没有进行登录
        if(request.getSession().getAttribute("user")==null){
            //就重定向/admin资源路径下的接口，也就是我们登录界面
            response.sendRedirect("/admin");
            //进行拦截
            return false;
        }
        //登录成功，继续执行流程，不做拦截
        return true;
    }
}
